/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.ipti.br.tag.pdf;

import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Image;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import org.ipti.br.tag.entity.Campaign;
import org.ipti.br.tag.entity.Human;
import org.ipti.br.tag.entity.Unity;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.List;
import javax.ejb.Stateless;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;

/**
 *
 * @author FelipeMSX
 */
@Stateless
public class LetterToParentsWarnings extends AbstractPdf {
    
    public void run(List<Human> humans, Unity logged, Unity selected, Campaign campaign)
            throws FileNotFoundException, DocumentException, IOException, Exception {
        
        this.init("CPOP" + logged.getName() + " - " + campaign.getName() + " - " + selected.getName());
        
        for (Human human : humans) {
            generateScope(human);
            newPage();
        }
        
        close();
        export();
    }
    
    public void generateScope(Human human) throws Exception {
        ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();  
        Image image;
        image = Image.getInstance(externalContext.getRealPath("SLDI.jpg"));
        image.scaleAbsoluteWidth(140);
        image.scaleAbsoluteHeight(65);
        image.setAlignment( Element.ALIGN_CENTER);	
        image.setSpacingAfter(40);
        Paragraph paragraphSpace = new Paragraph("",super.getFontTextBold());
        paragraphSpace.setSpacingAfter(7);
        PdfPTable table = new PdfPTable(1);
        PdfPCell cell = new PdfPCell();

        Paragraph paragraph1 = new Paragraph("Prezados Pais,", getFontTextNORMAL() );
        paragraph1.setSpacingAfter(12);
        Phrase p22 = new Phrase(human.getName(), getFontTextBold());
        Paragraph paragraph2 = new Paragraph("Como é do conhecimento de vocês, realizamos, a partir de uma gotinha de sangue tirada" +
                        " do dedo do seu filho(a) ", getFontTextNORMAL() );
                        paragraph2.add(p22);
                        p22 = new Phrase(", um exame que diagnostica a anemia", getFontTextNORMAL() );
                        paragraph2.add(p22);

        paragraph2.setFirstLineIndent( getSpaceToFirstLine() );

        Paragraph paragraph3 = new Paragraph("Ficamos preocupados, pois o resultado mostrou que a sua criança encontra-se com anemia."
                + " Vocês deverão levar seu filho à consulta médica, para que ele receba o tratamento:",getFontTextNORMAL());
        paragraph3.setFirstLineIndent( getSpaceToFirstLine() );

        Paragraph paragraph4 = new Paragraph("Dia da Consulta: ",getFontTextBold());
        Paragraph paragraph5 = new Paragraph("Hora da Consulta: ",getFontTextBold());    
        Paragraph paragraph6 = new Paragraph("Local da Consula: ",getFontTextBold());
        Paragraph paragraph7 = new Paragraph("Gostaríamos de pedir a vocês para já prestarem atenção na alimentação da sua criança, "
                + "principalmente nestes pontos:",getFontTextNORMAL() );

        paragraph7.setFirstLineIndent( getSpaceToFirstLine() );
        paragraph7.setSpacingAfter(10);

        Paragraph paragraph8 = new Paragraph("1 – devemos oferecer às crianças, sempre que possível, carnes (de boi, frango ou peixe)"
                + ", feijão e folhas escuras, como couve e brócolis;",getFontTextBold());
        paragraph8.setSpacingAfter(10);

        Paragraph paragraph9 = new Paragraph("2 – devemos oferecer às crianças, logo após as refeições, sucos de frutas, principalmen"
                + "te as cítricas, como laranja e limão;", getFontTextBold() );
        paragraph9.setSpacingAfter(10);

        Paragraph paragraph10 = new Paragraph("3 – não devemos deixar as crianças tomarem refrigerantes, chá ou café junto das refei"
                + "ções;", getFontTextBold());  
        paragraph10.setSpacingAfter(10);

        Paragraph paragraph11 = new Paragraph("4 – lembrem-se também que leite faz muito bem, mas não junto das refeições. É melhor"
                + " deixar passar duas horas após a refeição para dar leite às crianças.", getFontTextBold() );
        paragraph11.setSpacingAfter(10);

        Paragraph paragraph12 = new Paragraph("Com estas medidas podemos ajudar as nossas crianças a ficarem sempre saudáveis e"
                + " alegres.", getFontTextBold() );
        paragraph12.setFirstLineIndent( getSpaceToFirstLine() );

        Paragraph paragraph13 = new Paragraph("Muito obrigado pela atenção.",getFontTextNORMAL());
        paragraph13.setAlignment( Element.ALIGN_CENTER);

        cell.addElement( paragraph1 );
        cell.addElement( paragraph2 );
        cell.addElement( paragraph3 );
        cell.addElement( paragraph4 );
        cell.addElement( paragraph5 );
        cell.addElement( paragraph6 );
        cell.addElement( paragraph7 );
        cell.addElement( paragraph8 );
        cell.addElement( paragraph9 );
        cell.addElement( paragraph10 );
        cell.addElement( paragraph11 );
        cell.addElement( paragraph12 );
        cell.addElement( paragraph13 );

        table.addCell( cell );
        super.getDocument().add( image );
        super.getDocument().add( paragraphSpace );
        super.getDocument().add( table );
    }
}
